1. Field of the Invention
The present invention relates to a method for allocating IP (Internet protocol) addresses for hosts on a computer network.
2. Background of the Invention
In order to access information sources from a TCP/IP (Transmission Control Protocol/Internet Protocol) network, each host on the TCP/IP network should be allocated some requested configuration parameters, such as IP address, subnet mask, default gateway, domain name server, etc. The subnet mask is a required setting on any host that communicates on an IP network. The setting is commonly represented in the same format as an IP address, except that the values usually are either 255 or 0. As far as a large-scale network is concerned, it is laborious work for web masters to manage and maintain hosts on the network. If a host is moved from one subnet to another subnet, the configuration parameters of the host need to be changed. Host users ordinarily do not have the expertise or authority to re-configure their hosts. Therefore, a mechanism is needed which allows web masters other than host users to manage and configure hosts on a TCP/IP network. One solution is the mechanism of DHCP.
DHCP stands for dynamic host configuration protocol, which originated from BOOT protocol (BOOTP). BOOTP is applied on networks connected by hosts having no disks. On this kind of network, hosts are started and connected to the network by use of BOOT ROMs other than disks, and the BOOTP can set the TCP/IP environment for the hosts automatically. DHCP is a kind of improved BOOTP, and generally comprises two parts: a DHCP server and a DHCP client. The DHCP server manages all IP information on the network, and processes requests from the DHCP client. The DHCP client uses IP information distributed by the DHCP server.
DHCP supports three different mechanisms to allocate IP addresses to hosts on a network: automatic allocation, dynamic allocation, and manual allocation. Under the automatic allocation mechanism, if a DHCP client successfully leases an IP address from a DHCP server, the DHCP client can use the IP address for an unlimited time. Under the dynamic allocation mechanism, if a DHCP client leases an IP address from a DHCP server, the DHCP client cannot always use the IP address. If the lease of the IP address expires, the DHCP client must relinquish (“release”) the IP address. In such case, the DHCP client has first priority in renewing the lease of the IP address, or in leasing another IP address from the DHCP server. Under the manual allocation mechanism, IP addresses of DHCP clients are allocated by hand input by web masters.
The process of using DHCP follows the steps of: (1) when started, a DHCP client broadcasts a DHCPDISCOVER message to DHCP servers on a subnet for leasing an IP address; (2) after receiving the DHCPDISCOVER message, each DHCP server respectively sends to the DHCP client a DHCPOFFER message that comprises an available IP address and other configuration parameters; (3) the DHCP client selects one DHCP server based on the configuration parameters, and broadcasts a DHCPREQUEST message which includes information that indicates which DHCP server it has selected; and (4) the selected DHCP server responds with a DHCPACK message to the DHCP client to validate leasing of the IP address, or responds with a DHCPNAK message to the DHCP client to refuse leasing of the IP address, and updates the database of the selected DHCP server. Generally, leasing an IP address only needs performance of the above-mentioned four steps. If the DHCP client finds that the leased IP address is used by another DHCP client, such as by use of an address resolution protocol (ARP), the DHCP client can send a DHCPDECLINE message to the DHCP server and re-perform the said four-step process for leasing a new IP address. If the DHCP client no longer leases the IP address, it can send a DHCPRELEASE message to the DHCP server. If the DHCP client wants to change one or more configuration parameters, it can send a DHCPINFORM message to the DHCP server to request such change.
Even though DHCP can greatly facilitate managing a large-scale network and allocating configuration parameters to different DHCP clients, it has some shortcomings. For example, when a DHCP server allocates IP addresses to more than one DHCP client, it is prone to allocate conflicting IP addresses. Thus, a system and method is needed for allocating IP addresses to DHCP clients, in which conflict between the allocated IP addresses is eliminated.